package main

import "fmt"

/***
【1】增加和更新操作:
		如果key还没有，就是增加，如果key存在就是修改map["key"]= value
【2】删除操作:
		delete(map，"key”)，delete是一个内置函数，如果key存在，就删除该key-value，
		如果k的y不存在，不操作，但是也不会报错

【3】清空操作:
	如果我们要删除map的所有key,没有一个专门的方法一次删除，可以遍历一下key,逐个删除(2)
	或者map =make(..)，make一个新的，让原来的成为垃圾，被gc回收
*/
func main() {
	//	test()
	//	del()
	// find()
	test01()
}

// 变量操作
func test01() {
	m := make(map[int]map[string]string)
	m[1] = map[string]string{
		"key1": "露露",
		"key2": "丽丽",
		"key3": "菲菲"}
	fmt.Println(m)
	m[2] = map[string]string{
		"key1": "aaa",
		"key2": "bbb",
		"key3": "ccc"}
	fmt.Println(m)
}

// 查找操作
/**
查找操作:value ,bool = map[key]
	value为返回的value，bool为是否返回，要么true要么false
*/
func find() {
	m := map[int]string{
		1: "one",
		2: "two",
		3: "three"}
	fmt.Println(m)
	// 查找
	ret := m[1]
	fmt.Println(ret)
}

// 清空
func del() {
	m := map[int]string{
		1: "one",
		2: "two",
		3: "three"}
	fmt.Println(m)
	m = make(map[int]string)
	fmt.Println(m)

}

func test() {
	m := map[int]string{
		1: "one",
		2: "two",
		3: "three"}

	fmt.Println(m)
	// 修改
	m[1] = "one1"
	fmt.Println(m)

	// 删除
	delete(m, 1)
	fmt.Println(m)
}
